import { PayloadUser } from '@libs/common/decorator';
import { IndexInterceptor } from '@libs/common/interceptors';
import { Body, Controller, Post, UseInterceptors } from '@nestjs/common';

import {
  CreateOvertimeLogDto,
  DeleteOvertimeLogDto,
  IndexOvertimeLogDto,
  ShowOvertimeLogDto,
  SyncOvertimeLogDto,
  UpdateOvertimeLogDto,
} from './dto/overtime-log.dto';
import { OvertimeLogService } from './overtime-log.service';

@Controller('hr/overtime-log')
export class OvertimeLogController {
  constructor(private readonly overtimeLogService: OvertimeLogService) {}

  @Post('index')
  @UseInterceptors(new IndexInterceptor())
  index(@Body() dto: IndexOvertimeLogDto) {
    return this.overtimeLogService.index(dto);
  }

  @Post('show')
  show(@Body() dto: ShowOvertimeLogDto) {
    return this.overtimeLogService.show(dto);
  }

  @Post('delete')
  delete(@Body() dto: DeleteOvertimeLogDto) {
    return this.overtimeLogService.delete(dto);
  }

  @Post('create')
  create(@Body() dto: CreateOvertimeLogDto) {
    return this.overtimeLogService.create(dto);
  }

  @Post('update')
  update(
    @Body() dto: UpdateOvertimeLogDto,
    @PayloadUser() user: SC.User.SysInfo,
  ) {
    // user info
    return this.overtimeLogService.update(dto);
  }

  @Post('sync')
  sync(@Body() dto: SyncOvertimeLogDto) {
    // user info
    return this.overtimeLogService.sync(dto);
  }

  // 只返回一条对象数据，如果存在多个只返回第一条
  // @Post('findOne')
  // findOne(@Body() dto: FindAttendanceTodayDto) {
  //   return this.AttendanceTodayService.findOne(dto);
  // }

  // 返回所有符合条件的数据
  // @Post('find')
  // find(@Body() dto: FindAttendanceTodayDto) {
  //   return this.AttendanceTodayService.find(dto);
  // }

  // @Post('import')
  // import(@Body() dto: ExportOvertimeDto) {}

  // @Post('export')
  // export(@Body() dto: ImportOvertimeDto) {}

  // @Post('switch')
  // switch(dto: SwitchOvertimeDto) {
  //   return this.overtimeService.switch(dto.id, dto.status);
  // }
}
